Out of office message improvements

ABSTRACT

Embodiments of the present invention relate to set of improvements to the out of office assistant that send out of office messages to senders of messages while a recipient is out of the office. One embodiment of the out of office assistant associates an out of office message with a calendar event to ensure the out of office message is sent only for the predetermined time period associated with the calendar event. Other embodiments of the out of office assistant generating different messages to people internal to an organization and people external to an organization, and the out of office assistant allows different rich text formatting for the different messages. In a further embodiment, a persistent reminder reminds the user that the out of office message application is turned on.

BACKGROUND

Out of office (OOF) messages are generally sent, by an email or othermessaging program, to alert a sender of a message that the messagerecipient is not available or “out of the office.” Typically, the out ofoffice message application, in the email program, is turned on when aperson leaves his or her office, and the person turns off the out ofoffice message application after returning to the office. Unfortunately,users often forget to turn off or turn on the out of office messageapplication. The oversight by the user can lead to misinforming messagesenders of the status of the user.

SUMMARY

Embodiments of the present invention generally relate to improvements toan out of office assistant.

In one embodiment, an out of office assistant associates an out ofoffice message with a calendar event to ensure the out of officemessages are sent only for the predetermined time period of the calendarevent. Further embodiments relate to generating and sending differentmessages to people internal to an organization and people external to anorganization, and more particularly, to defining people internal to anorganization. In additional embodiments, the out of office messages areformatted in a rich text format, e.g., HTML, and may be formatteddifferently for the internal and external people. In still furtherembodiments, a persistent reminder reminds the user that the out ofoffice message application is turned on. Embodiments of the presentinvention comprise systems, methods, user interface elements, and datastructures that effectuate the embodiments of the out of officeimprovements.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is an embodiment of a display of an out of office assistantproviding out of office messages and out of office message formatting.

FIG. 1B is a further embodiment of a display of an out of officeassistant providing a second out of office message for a second group ofrecipients.

FIG. 2 is a function diagram illustrating an embodiments of a systemoperable to provide an out of office assistant that creates and sendsout of office messages.

FIG. 3 is a block diagram of an embodiment of a data structure forstoring out of office messages and out of office parameters andcharacteristics.

FIG. 4 is a flow diagram representing an embodiment of a method forassociating a calendar event with an out of office message.

FIG. 5A and FIG. 5B is a flow diagram representing a further embodimentof a method for creating one or more out of office messages andinputting out of office message parameters.

FIG. 6A, FIG. 6B and FIG. 6C are embodiments of displays indicatingactive out of office messages.

FIG. 7 is a block diagram representing an embodiment computingenvironment and computing system operable to execute out of officeassistants.

DETAILED DESCRIPTION

This disclosure will now more fully describe some embodiments withreference to the accompanying drawings, in which only some of thepossible embodiments are shown. Other aspects may, however, be embodiedin many different forms and should not be construed as limited to theembodiments set forth herein. Rather, these embodiments are provided sothat this disclosure will be thorough and complete and will fully conveythe scope of the possible embodiments to those skilled in the art.

Embodiments of the present invention relate to out-of-office assistantsthat provide user-friendly methods and systems for scheduling andcustomizing out of office messages. An out of office (OOF) messagegenerally is a message, such as an email message, which is sent in replyto a received message and which alerts the sender of the receivedmessage that the recipient is “out of the office.” For example, a usermay be on vacation from November 22 through December 2. The user maylike to alert anyone trying to contact him or her that he or she willnot be able to respond to a sent message. The user can enter the message“I will be out of the office from November 22 to December 2 and willrespond to any messages when I return.” that will be sent to the peopletrying to contact him. Then, the user's email program, or othermessaging program, sends the out-of-office message in reply to anyonethat sends a message to the user during the time period when the out ofoffice message is active, such as from November 22 to December 2.

An embodiment of a computer system 100 displaying an out-of-officeassistant 102 is shown in FIG. 1A, with an embodiment of a furtherdisplay 126 shown in FIG. 1B. In embodiments, an out-of-office assistant102 provides a user of the computer system 100 with options to send anout-of-office message, to schedule when to send one or moreout-of-office messages, to format the one or more out-of-officemessages, and to customize the one or more out-of-office messages forone or more different recipients. The out-of-office assistant 102 is, inembodiments, a window including a title bar 104 and one or morecontrols, such as selectable buttons 106 and 108. In one embodiment, thecomputing system 100 presents the user with the out of office assistant102 upon entering a calendar event in a calendar component of a personalorganizer, like Microsoft® Office® Outlook®.

A first set of controls 110 accepts input from a user through a mouse orother user interface device. The first set of controls 110, inembodiments, accepts input as to whether an out of office auto replymessage is to be sent. In the exemplary embodiment shown in FIG. 1, auser selects the radio button 112 to activate out of officeauto-replies, while the user selects the radio button 114 not to sendout of office auto-relies. By receiving the selection of the radiobutton 112, the computing system 100 accepts input that the out ofoffice messages should be sent. In a further embodiment, selection ofthe radio button 112 also associates the out of office messages with acalendar event input into the calendar.

A second set of controls 116, in embodiments, accepts user input as towhether there is a time period for which the out of office messages areto be sent. By setting a check box 118 in the exemplary embodiment ofFIG. 1, the user specifies that the out of office auto-reply messagesare to be sent only during a specified time period. In embodiments, thetime period is designated by a start time and an end time, but, in atleast one embodiment, the time period is designated by only a start timeor an end time. A pair of drop down menus 120 allows the user to inputthe start time. The first drop down menu 120 a allows a user to enterthe date at which the out of office messages should start being sent. Asecond drop down menu 120 b allows the user to set the time, during theday set with drop down menu 120 a, at which the out of office messagesshould start being sent. A similar pair of drop down menus 122 allowsthe user to set the date and time when the out of office messages shouldcease being sent. In further embodiments, the start time displayed inuser interface elements 120 or the end time displayed in user interfaceelement 122 are automatically entered from the start time and end timeof an associated calendar event.

In other embodiments, a first tab 124 exposes an embedded window 128that allows a user to enter the text 130 of an out of office message.The first tab 124 allows a user to enter a message for a predeterminedgroup of recipients. In one embodiment, the first group of recipientsare people that are “Inside my Organization” as indicated by the titleof the first tab 124. The people included in the first group ofrecipients may be determined by the organization using the out of officeassistant or by another entity. For example, the organization indicatesthat only those people with the same domain, e.g., “@microsoft.com,” arepart of the first group of recipients that will receive the out ofoffice message entered in window 128. Other methods for defining thefirst group of recipients are possible including designating all peoplelisted in both a Global Address List (GAL), which is a list of emailaddresses maintained by a server email system, for example, Microsoft®Exchange®, and/or the user's contacts folder, for example, in the user'scontacts folder of Microsoft® Office® Outlook®.

A next set of controls 132 can comprise controls to change theformatting of the text of the out of office message 130. Embodiments ofout of office assistant 102 allows for rich text formatting of the outof office messages. Rich text formatting, e.g., HTML, can be formattingfor different fonts, font sizes, font colors, bullets, highlighting,etc. The controls 132 comprise controls can change the font, font size,bolding, italics, underlining, font color, bullets, indentions, etc. Theset of controls 132 can be associated with the first out of officemessage 130. In embodiments, the first out of office message 130 sent tothe first group of recipients has different text and formatting comparedto a second out of office message sent to a second group of recipients.

A second tab 126 can expose a second window 140, shown in FIG. 1B, thataccepts a second out of office message 144 from the user. If a userdesires to send the second out of office message 144 to a second groupof recipients, the user selects the check box user interface control 134to indicate that the use wants to send different OOF messages todifferent groups of recipients. The second out of office message 144, inembodiments, is sent to a second group of recipients. In an embodiment,the second group of recipients includes all recipients not part of thefirst group of recipients described above, i.e., all recipients that arenot internal to the organization. In other embodiments, the userdesignates the second group of recipients by selecting radio button 136or radio button 138. Selecting radio button 138 indicates that thesecond group of recipients includes all recipients within a differentdomain. In another embodiment, selecting radio button 136 indicates thatthe second group of recipients is the contacts or members of the user'scontact folder in the email system. More groups of recipients arespecified and other tabbed windows exposed in other embodiments.Controls 142, in embodiments, allow for different rich text formattingand other formatting for the second OOF 144.

A system 200 for generating OOF messages 228 and sending the OOFmessages 228 is shown in FIG. 2. The system 200 may be embodied inhardware, software, or a combination of hardware and software. In oneembodiment, the system 200 is one or more software components embodiedin at least one tangible computer readable medium, as explained inconjunction with FIG. 9, and executable on a computing system togenerate, customize, or send OOF messages 228. The system, inembodiments, comprises one or more of a personal organization system202, a user interface 204, an optional local area network (LAN) 206, aconnection to a wide area network (WAN) 208, such as the Internet, and asystem time component 210, which may optionally be part of an operatingsystem 212. The personal organization system 202 is, in embodiments, inelectrical communication with or communicatively coupled to the LAN 206or the WAN 208, the user interface 204, and the system time component212.

The LAN 206 or WAN 208 is, in embodiments, any system or method thatconnects together two or more computers that allows the computer tocommunicate with each other. LANs and WANs are well known in the art andwill not be explained further. Embodiments of the system time component210 are any hardware device or software component that maintains thecurrent date and time for a computing system 100 (FIG. 1A and FIG. 1B).The optional operating system 212 is any embodiment of an operatingsystem that functions as a software platform for one or more othersoftware applications. An exemplary operating system 212 is theMicrosoft® XP® operating system offered by Microsoft® Corporation ofRedmond, Wash.

An exemplary embodiment of the personal organization system 202 is theMicrosoft® Office® Outlook® software program offered by Microsoft®Corporation of Redmond, Wash. In embodiments, the personal organizationsystem 202 comprises an out of office assistant component 216 and, infurther embodiments, includes a messaging service 214 and a calendarcomponent 218. The out of office assistant component 216 is inelectrical communication with or communicatively coupled to themessaging service 214 and the calendar component 218. In otherembodiments, the personal organization system 202 includes one or moreother components, such as a contact's folder component 238, a tasks listcomponent (not shown), a notes component (not shown), a journalcomponent, etc.

In operation, the personal organization system 202 can create, store andsend OOF messages. The out of office assistant 216, in embodiments,accepts a request to create an OOF message from either the calendarcomponent 218 or the user interface 204. In one embodiment, a user setsan appointment 240 in the calendar component 218. In response to settingthe appointment 240, the out of office assistant presents a window, forexample, window 102 (FIG. 1A and FIG. 1B), to the user to create an OOFmessage associated with the appointment 240. The user can select whetheran OOF message should be sent during the time period of the appointment240. If the user does desire an OOF message to be sent, the start time120 a (FIG. 1A and FIG. 1B) and end time 120 b (FIG. 1A and FIG. 1B) areautomatically set by importing the start time and end time of theappointment 240 set in the calendar component 218. The user may then setother OOF message parameters as needed for the OOF message associatedwith the calendar appointment 240 and enter the text of the OOF message.In another embodiment, one or more parts of the text of the OOF messageare automatically created with properties of the calendar appointment240. For example, a user can set the type of appointment, for example,meeting, vacation, personal, etc., and/or set the location of the user,for example, Tahiti, Boston, etc. The automatically generated messagecan use the properties for parts of the text. For example, the text ofthe automatically generated OOF message may read “I will be on vacationin Tahiti for 1/1/07 to 1/20/07,” wherein all italicized text isautomatically generated from calendar appointment properties.

In another embodiment, a user requests, using the user interface 204, tocreate an OOF message. The out of office assistant 216 presents, inembodiments, a window 102 (FIG. 1A and FIG. 1B), to enter the OOFmessage 222 and the message parameters 224 as explained in conjunctionwith FIG. 1A and FIG. 1B. Regardless of the method used to request orcreate the OOF message and the message parameters, the OOF message andthe OOF message parameters are stored in a datastore 220. Inembodiments, the datastore 220 is a subcomponent of the out of officeassistant 216 or a messaging service 214 executing on a server, forexample, Microsoft® Exchange® Server but, in other embodiments, is aseparate datastore not associated with the out of office assistant 216or the messaging service 214.

To execute the OOF message 228 as specified by the user, embodiments ofthe messaging service 214 receives a first message 226 from a sender 232and addressed to the recipient 234. Upon receiving a received message226, the messaging service 214 accesses the stored OOF messages 222 andOOF message parameters 224 from the database 220.

In one embodiment, the messaging service 214 determines if any out ofoffice message is active. For example, the user may have set an out ofoffice message to be sent without specifying when the out of officemessage was to be sent. In this example, the out of office message isactive until the user terminates the out of office message. Otherembodiments of the messaging service 214 determines if any OOF messagehas a time period in which the OOF message is supposed to be sent. Ifone or more OOF messages do have a time period set in the messageparameters 224, the messaging service 214 determines the current dateand time sent by the system time component 210. By comparing the currentdate and time with the start time and end time in the OOF messageparameters as explained in more detail in conjunction with FIG. 4, themessaging service 214 determines whether the message 226 was receivedwithin the specified time period. If the message 226 was received withinthe specified time period, the OOF message, with the parameter set withthe specified time period, is active. It should be appreciated that theone or more steps described herein may be performed in one or more othersequences. For example, the user may create an OOF message, and themessage may be stored in the datastore. The OOF message may then becomeactive. A messaging service 214 may receive a message at which time themessaging service 214 can check if an OOF message is active. If amessage is active, the OOF message may be accessed from the datastoreand sent.

In another embodiment, the messaging service 214 periodically, or uponinitialization of the personal organization system 202, polls the systemtime component 212 for the current date and time. The messaging service214 compares the current date and time to any date and time specified inthe OOF message parameters 224 stored in datastore 220. If the currentdate and time are within a time period specified by any OOF messageparameters 224, a flag is set to alert the messaging service 214 shouldrespond to all received messages 226 with the OOF message 228. It isappreciated that a flag is any bit or software operation that indicatesor stores a status of a software component.

Embodiments of the messaging service 214 sends the OOF message if anyOOF message is active. The message retrieved by the messaging service214, in embodiments, includes the text of the OOF message and one ormore message parameters needed by the messaging service 214 to preparethe OOF message. For example, the messaging service 214 determineswhether there is a first message for a first group of recipients and asecond message for a second group of recipients because the messagingservice 214 would need to construct two OOF messages. In furtherexamples, the messaging service 214 would need to know any formattingfor the OOF message.

Upon receiving the OOF message and OOF message parameter data,embodiments of the messaging service 214 construct the OOF message andsends the OOF message 228. In embodiments, the sender 232 of thereceived message 226 becomes the recipient 234 of the OOF message 228.Likewise, the recipient 230 of the received message 226 becomes thesender 236 of the OOF message 228. The messaging service 214 continuesto send OOF messages 228 as long as any OOF message is active.

An embodiment of an OOF message data structure 300 is shown in FIG. 3.In one embodiment, the OOF message data structure 300 comprises at leasta first OOF message text data field 312. The first OOF message text datafield 312 includes the text used in the OOF message 228 (FIG. 2). Inembodiments, the text in the first OOF message text data field 312 isentered by the user or is automatically generated by the out of officeassistant 202 (FIG. 2). For example, an automatic OOF message may read“the recipient is currently out of the office.”

In further embodiments, the OOF message data structure 300 comprises anoptional time period data field 302, which stores the time period inwhich the OOF message is to be sent. The time period data field 302 isnot required because the user may manually turn on the OOF messagewithout scheduling a time period for the OOF message. The data in thetime period data field 302 is read and instructs the out of officeassistant 202 (FIG. 2) when to direct a message service 214 (FIG. 2) tosend the OOF message. In one embodiment, the time period data field 302comprises a start time data field 304. The start time data field 304establishes the date and time at which the OOF messages should start tobe sent. An optional end time data field 306 may also be included in thetime period data field 302. The end time data field 306 establishes thetime at which the OOF messages should no longer be sent.

In further embodiments, a pointer to a calendar event 324 is set in thetime period data field 302. The pointer to a calendar event 324 stores asoftware data structure that associates the OOF message data structure300 with an event in a calendar. Thus, when the calendar event changes,for example, the time or date of the calendar event changes, the pointerto the calendar event 324 determines that changes have been made andallows the importation of new parameters, e.g., start time and end time.

Another embodiment of the OOF message data structure 300 comprises arecipient information data field 308. If a user desires to senddifferent OOF messages to different recipients, the recipientinformation data field 308 comprises the data with which to determinethe different recipients and the targeted OOF message data for thoserecipients. For example, if a first OOF message is to be sent to a firstgroup of recipients, a first group of recipients data field 310comprises the data for first OOF message and the first group ofrecipients. In one embodiment, the first group of recipient data 310includes a listing of one or more people included in the first group ofrecipients. In another embodiment, the first group of recipient data 310includes a pointer to a datastore that defines the people in the firstgroup of recipients. For example, the pointer points to the contactsfolder in the email system of the user. The out of office assistant 202(FIG. 2), in embodiments, compares the sender information 232 (FIG. 2)of the received message 226 (FIG. 2) with recipient data in the firstgroup of recipient data 310 to determine if the sender is part of thefirst group of recipients and should receive the first OOF message.

The first group of recipient data 310 may also include otherinformation. In one embodiment, the first OOF message text data field312 described above may be part of the first group of recipient data310. In further embodiments, the first OOF message characteristics datafield 314 is also included in the first group of recipient data 310. Thefirst OOF message characteristics data field 314 may contain one or moreitems of data describing the formatting or other characteristics of thefirst OOF message. In embodiments, the first OOF message characteristicsdata 314 includes designations for font style, font size, font color,bolding, underlining, italics, indention, bullets, etc., as generallydesignated at 316.

If the user designates that there are more than one OOF message for morethan one group of recipients, the recipient information data field 308,in embodiments, includes at least a second group of recipient data 318.Like the first group of recipient data, the second group of recipientdata 318 can comprise a second OOF message text data field 320 and asecond OOF message characteristics data field 322. The second OOFmessage text data field 320 and the second OOF message characteristicsdata field 322 contain similar information as the first OOF message textdata field 312 and the first OOF message characteristics data field 314,respectively. The information in the second OOF message characteristicsdata field 322 is generally designated by 322. Unlike the first group ofrecipient data 310, embodiments of the second group of recipient data318 may not contain information about people included in the secondgroup of recipients. Instead, the second group of recipients may be adefault group for all senders 230 (FIG. 2) not part of the first groupof recipients. However, in other embodiments, if there is a third groupof recipients defined in a third group of recipient data (not shown),the second group of recipient data 318 designates the particular peoplein the second group of recipients.

An embodiment of a method 400 for scheduling an out of office messageassociated with a calendar event is shown in FIG. 4. Generally, themethod 400 begins with a start operation 402 and terminates with an endoperation 418. Upon starting the method 400 with the start operation402, receive operation 404 receives an appointment. In one embodiment,the appointment is entered into a calendar 218 (FIG. 2). The calendarappointment may have one or more appointment parameters, for example,the start time or end time of the appointment, one or more out of office(OOF) messages 222 (FIG. 2) and one or more OOF message parameters 224(FIG. 2). In embodiments, the OOF message is similar to the OOF message140 (FIG. 1) as shown in the window 128 (FIG. 1). OOF message parametersmay be one or more parameters received from the user, which dictate thefunction of the out of office auto-reply messages. For example, theparameters can include the time period in which the OOF message is to besent, the designation of a first OOF message for a first group ofrecipients, the designation of a second OOF message for a second groupof recipients, and/or the formatting of the one or more OOF messages.The one or more OOF messages and the OOF message parameters, inembodiments, are stored for use when the one or more OOF messages are tobe sent.

Receive operation 406 receives indication that an out of office messagewill be associated with the appointment. In one embodiment, a userindicates that an OOF message is associated with the appointment byselecting a user interface control in the calendar 218 (FIG. 2). Otherembodiments of the calendar 218 (FIG. 2) automatically indicates that anOOF message can be associated with the appointment and requires the userto “deselect” the out of office message option. In response to receivingindication that an out of office message is associated with theappointment, provide operation 408 provides out of office assistance. Inone embodiment, the OOF assistant 102 (FIG. 1) is provided to the userto enter OOF messages and OOF message parameters.

Receive operation 410 receives one or more out of office messages 222(FIG. 2) and one or more OOF message parameters 224 (FIG. 2). Inembodiments, the OOF message is similar to the OOF message 140 (FIG. 1),as shown in the window 128 (FIG. 1). Message parameters are one or moreparameters received from the user, which dictate the function of the outof office auto-reply messages. For example, the parameters include thetime period in which the OOF message are to be sent, the designation ofan first OOF message for a first group of recipients, the designation ofa second OOF message for a second group of recipients, and/or theformatting of the one or more OOF messages. The one or more OOF messagesand the OOF message parameters, in embodiments, are stored in adatastore 220 (FIG. 2) for use when the OOF messages are to be sent.

In one embodiment, the OOF message parameters include a time period forwhen the OOF messages are to be sent, and the time period is associatedwith time set for the calendar appointment. Thus, when the appointmentin the calendar begins, the OOF messages begin being sent. Likewise,when the appointment in the calendar ends, the OOF messages stop beingsent. In one embodiment, the times set for the appointment are importedinto the OOF message parameters for the OOF message. A pointer, objectlinking and embedding (OLE) software device or other software constructmay associate the OOF message parameters with the calendar event. Thus,if the time for the appointment is changed in the calendar, the OOFmessage parameters are also automatically changed.

Determine operation 406 determines if the current time is within thetime period specified in the OOF message parameters. For example, thedetermine operation 406 retrieves the current date and time from asystem time component 210 (FIG. 2) of the operating system 212 (FIG. 2)of the computing system 100 (FIG. 1). In one embodiment, determineoperation 406 compares the current date and time to the start timeentered into the drop down menu 120 a (FIG. 1). If the current date andtime is after the start time, determine operation 406 compares thecurrent date and time to the end time entered into the drop menu 120 b(FIG. 1). If the current date and time is before the end time, then thecurrent date and time is within the time period for the OOF messages,and the method flows Yes to determine operation 408. If the current dateand time is either before the start time or after the end time, themethod flows No to the end operation 404. In one embodiment, the OOFassistant sets a flag that alerts the messaging service that OOF messageare to be sent.

If a current date and time is within the time period for the OOFmessages, determine operation 408 determines if a message 226 (FIG. 2)has been received. In one embodiment, the messaging service 214 (FIG. 2)sends a signal to the out of office assistant 216 (FIG. 2) that amessage has been received. In another embodiment, the out of officeassistant 216 (FIG. 2) polls the messaging service 214 (FIG. 2) todetermine if a new message is in the inbox and was received atapproximately the current date and time. If there are no new messagesreceived, the method flows No to determine operation 406. If there is anew message received, the method flows Yes to send operation 410. Inanother embodiment, with the OOF flag set, the messaging serviceautomatically responds to all received messages by sending the OOFmessage. Send operation 410 sends the OOF message 228 (FIG. 2) to thesender 234 (FIG. 2) of the new message 226 (FIG. 2).

An embodiment of a method 500 for receiving OOF message parameters 224(FIG. 2) is shown in FIGS. 5A and 5B. Generally, the method 500 beginswith a start operation 502 and terminates with an end operation 526.Upon starting the method 500 with the start operation 502, receiveoperation 504 receives an indication that an OOF message is to be sent.In one embodiment, a user selects a user interface control, for example,user interface control 112 (FIG. 1), which indicates that the user wantsto send an OOF message. Upon receiving the indication that the userwants to send an OOF message, one embodiment of the process 500 flowsthrough reference A 514 to receive operation 516. In another embodiment,the process 500 flows to determine operation 506, which determines ifthere is a start time for the OOF message. A user may enter the starttime in a user interface control, for example, drop down menus 120 a(FIG. 1A) and 120 b (FIG. 1A), by which an out of office assistant 216(FIG. 2) determines that there is a start time for the OOF message. Inanother embodiment, the user sets a calendar event in a calendarcomponent 218 (FIG. 2). After setting the calendar event, the user mayselect a user interface control to associate an OOF message with thecalendar event. If the user associates the calendar event with an OOFmessage, the out of office assistant 216 (FIG. 2) determines that thereis a start time for the OOF message, which corresponds to the start timeof the calendar event. If there is a start time, the process 500 flowsYes to receive operation 508. If there is no start time, the process 500flows No through reference A 514 to receive operation 516.

Receive operation 508 receives the start time for the OOF message. Asexplained in conjunction with FIG. 1A, FIG. 1B and FIG. 2, the starttime may be entered by the user through a user interface element 120 a(FIG. 1A) or may be input from the start time of an associated calendarevent in a calendar 218 (FIG. 2). In one embodiment, the out of officeassistant 202 (FIG. 2) stores the start time in the start time datafield 304 (FIG. 3) of the OOF message data structure 300 (FIG. 3), whichis stored in the datastore 220 (FIG. 2).

Determine operation 510 determines if there is a time period for the OOFmessage. In one embodiment, if a user enters a value as an end time in auser interface element 120 b (FIG. 1A), then determine operation 510determines that there is a time period. In another embodiment, if theOOF message is associated with a calendar event, determine operation 510determines that there is a time period that corresponds with theassociated calendar event. If there is a time period, the process 500flows Yes to receive operation 512, and, if there is no time period forthe OOF message, the process flows No to reference A 514 and to receiveoperation 516.

Receive operation 512 receives an end time for the OOF message timeperiod. The end time, in embodiments, is the date and time when the OOFmessages should no longer be sent. As explained in conjunction with FIG.1A, FIG. 1B and FIG. 2, the end time may be entered by the user througha user interface element 120 b (FIG. 1A) or may be input from the endtime of an associated calendar event in a calendar 218 (FIG. 2). In oneembodiment, the out of office assistant 202 (FIG. 2) stores the end timein the end time data field 306 (FIG. 3) of the OOF message datastructure 300 (FIG. 3), which is stored in the datastore 220 (FIG. 2).After receive operation 512, embodiments of the process 500 flowsthrough reference connector A 514 to receive operation 516.

Receive operation 516, shown in FIG. 6B, receives the first OOF messagetext. The text received by the receive operation 516 is input into thefirst out of office message 228 (FIG. 2) sent by the message service 214(FIG. 2) of the computing system 200 (FIG. 2). Again, as explained inconjunction with FIG. 1A, FIG. 1B and FIG. 2, the text may be entered bythe user through a user interface element 128 (FIG. 1A). In oneembodiment, the text message received is stored in the first OOF messagetext data field 312 (FIG. 3) of the OOF message data structure 300 (FIG.3).

In embodiments, optional receive operation 518 receives one or moremessage characteristics 224 (FIG. 2) for the first OOF message. Themessage characteristics may be one or more formatting or otherparameters entered through user interface elements 132 (FIG. 1) orstored in the message characteristics data field 314 (FIG. 3). Forexample, the message characteristics include bolding, highlighting,bulleting, or any other type of rich text formatting. In embodiments,the out of office assistant 202 (FIG. 2) stores the received messagecharacteristics 224 (FIG. 2) in the first OOF message characteristicsdata field 314 (FIG. 3) of the OOF message data structure 300 (FIG. 3),which is stored in the datastore 220 (FIG. 2).

Determine operation 520 determines if there are more than one group ofrecipients for one or more OOF messages. For example, if the user entersa second OOF message into user interface element 126 (FIG. 1A),determine operation 520 determines there are two or more OOF messagesfor two or more groups of recipients. If there are two or more groups ofrecipients, the process 500 flows Yes to receive operation 522. If thereis one group of recipients, the process flows No to end operation 526.

Receive operation 522 receives the second OOF message for the secondgroup of recipients. The text received by the receive operation 522 isinput into the second out of office message sent by the message service214 (FIG. 2) of the computing system 200 (FIG. 2). Again, as explainedin conjunction with FIG. 1A, FIG. 1B and FIG. 2, the text may be enteredby the user through a user interface element 126 (FIG. 1B). In oneembodiment, the text message received is stored in the second OOFmessage text data field 320 (FIG. 3) of the OOF message data structure300 (FIG. 3).

In further embodiments, optional receive operation 524 receives one ormore message characteristics for the second OOF message. The messagecharacteristics may be one or more formatting or other parametersentered through user interface elements. For example, the messagecharacteristics include bolding, highlighting, bulleting, or any othertype of rich text formatting. In embodiments, the out of officeassistant 202 (FIG. 2) stores the received message characteristics 224(FIG. 2) in the first OOF message characteristics data field 314 (FIG.3) of the OOF message data structure 300 (FIG. 3), which is stored inthe datastore 220 (FIG. 2). In one embodiment, the messagecharacteristics for the second OOF message also includes a definition ofwhat people are included in the second group of recipients. For example,the user may select a user interface element to indicate that the secondgroup of recipients is those people listed in the user's contactsfolder.

In a further embodiment, optional receive operation 525 receives andindication that the second group or recipients are one or more contactsin a user's contacts folder. For example, the user selects a userinterface element 136 (FIG. 1B) that instructs the out of officeassistant 202 (FIG. 2) that the second group of recipients are thecontacts in the contacts folder 238 (FIG. 2). In another example, theuser selects user interface element 138 (FIG. 1B) that instructs the outof office assistant 202 (FIG. 2) that the second group of recipients arethe people outside the organization, for example, those people with adifferent domain name.

A problem with some out of office assistants is that there are either noindications or poor indications of when the out of office assistant isturned on. A set of user interface elements 600 that provide anindication to the user that the out of office assistant is currently onis shown in FIG. 6A, FIG. 6B and FIG. 6C. In one embodiment, the userinterface element is a balloon 602 that appears to indicate to the userthat the out of office auto-reply function is currently on. The balloon602 may appear, for example, when the personal organization system 202(FIG. 2) is first initiated (the user is OOF), after some period oftime, for example, 24 hours, when a user's OOF turns on (while thepersonal organization system 202 is running), or when the user opens orviews his or her email, etc.

In other embodiments, the user interface element that provides thepersistent reminder that the out of office auto-reply function iscurrently operating is a box 604 in the status bar of the personalorganization system 202 (FIG. 2) or a banner 606 placed in the userinterface of the personal organization system 202 (FIG. 2) as shown inFIG. 6B. The persistent reminder message may provide differentinformation. For example, the banner 606 shows that the out of officemessages will be sent until a predetermined date and time correspondingto an end time. Thus, the banner 606 can provide information to the userthat allows the user to turn off the OOF message earlier than thescheduled end time. Similarly, the box 604 may also provide informationthat allows the user to turn off the OOF message. It is to beappreciated that the persistent reminders 604 and 606 can remain visibleregardless of the user's actions and for the duration of the executionof the personal organization system 202 (FIG. 2).

One or more of the user interface elements 602, 604 or 606, inembodiments, are selected to expose a pop-up menu 608. The pop-up menu608 can allow the user to turn off the out of office messages byselecting a menu option 610 to turn off the OOF messages. In otherembodiments, a menu selection 612 will expose the out of officeassistant user interface 102 (FIG. 1A). Therefore, embodiments of themenu 608 provide an easy entry point into the out of office assistant102 (FIG. 1A) that is itself easily accessed from the user interfaceelements 602, 604 or 606.

With reference to FIG. 7, an embodiment of a computing environment forimplementing the embodiments described herein includes a computersystem, such as computer system 700. The creation, administration andtransmission of out of office messages may be done on a client computersystem, on a server computer system, on a combination of client andserver computer systems, on a handheld device, and in other possiblecomputing environments. In one embodiment, the client computer executesa personal organization system 202 (FIG. 2), for example, Microsoft®Office® Outlook®, while the messaging service 214 (FIG. 2), for example,Microsoft® Exchange® Server, executes on a server. As such, a basiccomputer system applicable to these environments is describedhereinafter.

In its most basic configuration, computer system 700 typically includesat least one processing unit 702 and system memory 704. In embodiments,an out of office assistant 718 is loaded into and run by the processingunit 702 from system memory 704 of a client computer. Depending on theexact configuration and type of computer system 700, memory 704 may bevolatile (such as RAM), non-volatile (such as ROM, flash memory, etc.),or some combination of the two. This most basic configuration of thecomputer system 700 is illustrated in FIG. 7 by dashed line 706.

Additionally, device 700 may also have additionalfeatures/functionality. For example, device 700 includes additionalstorage (removable and/or non-removable) including, but not limited to,magnetic or optical disks or tape. Such additional storage isillustrated in FIG. 7 by removable storage 708 and non-removable storage710. In embodiments, an out of office assistant 720 is permanentlystored in non-removable storage 710, although out of office assistant720 may be saved into removable storage 708, and loaded into systemmemory 704 for execution by the processing unit 702 on the client. Insome embodiments, the out of office assistant 720 is one or severalcomponents of a personal organization system 202 (FIG. 2). Computerstorage media includes volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer readable instructions, data structures,program modules, or other data.

Memory 704, removable storage 708, and non-removable storage 710 are allexamples of computer storage media. Computer storage media includes, butis not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage, othermagnetic storage devices, or any other medium which is used to store thedesired information, such as the out of office assistant software or theout of office message data structure 300 (FIG. 3), and which is accessedby device 700 and processor 702 on the client computer. Any suchcomputer storage media may be part of device 700.

Device 700 may also contain communications connection(s) 712 that allowthe device to communicate with other devices. In embodiments, thecommunication connections 712 are used to receive email messages with anmessaging service executed on a server that is accessed over a network,such as the Internet, that receives the messages and parses data fromthe message, for example, the sender, and that replies with an out ofoffice message to the sender of the message. In still other embodiments,an out of office assistant 718 is loaded into system memory 704 orstored into removable storage 708 or non-removable storage 710 from aserver accessed using the communication connections 712.

Communications connection(s) 712 is an example of communication media.Communication media typically embodies computer readable instructions,data structures, program modules, or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includesany information delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired, connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

In embodiments, device 700 includes a graphical user interface 722 thatincludes input devices 714 and output devices 716. Data selections foran out of office assistant 718, in embodiments, are selected with userinput device(s) 714, and the intervals are displayed with outputdevice(s) 716. Input device(s) 714 are also referred to as userinterface selection devices and include, but are not limited to, akeyboard, a mouse, a pen, a voice input device, a touch input device,etc. Output device(s) 716 are also referred to as displays and include,but are not limited to, cathode ray tube displays, plasma screendisplays, liquid crystal screen displays, speakers, printers, etc. Thesedevices, either individually or in combination, form the graphical userinterface 722 used to display the intervals as described herein. Allthese devices are well know in the art and need not be discussed atlength here.

Computer system 700 typically includes at least some form of computerreadable media, which is some form of computer readable medium. Computerreadable media can be any available media that can be accessed byprocessing unit 702. By way of example, and not limitation, computerreadable media comprise computer storage media and communication media.Out of office assistant 718 comprises such modules or instructionsexecutable by computer system 700 that may be stored on computer storagemedium and other tangible mediums and transmitted in communicationmedia. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules, or other data.Combinations of the any of the above should also be included within thescope of computer readable media.

In some embodiments, computer system 700 is part of a network thatstores data in remote storage media for use by the computing system 700.In embodiments, an out of office assistant 718 executing on a clientsystem may access the remotely stored data to generate out of officemessages for the remotely stored data. In other embodiments, thecomputing system 700 is a desktop or similar computer that stores andoperates the out of office assistant 718 on local client data stored ina local storage medium. In still other embodiments, the out of officeassistant 718 is executed remotely on a server computer system, whereinout of office messages are returned to a client computer system but notgenerated on the client computer system.

Although the embodiments have been described in language specific tostructural features, methodological acts, and computer-readable mediacontaining such acts, it is to be understood that the possibleembodiments, as defined in the appended claims, are not necessarilylimited to the specific structure, acts, or media described. One skilledin the art will recognize other embodiments or improvements that arewithin the scope and spirit of the present invention. Therefore, thespecific structure, acts, or media are disclosed only as illustrativeembodiments. The invention is defined by the appended claims.

1-20. (canceled)
 21. A computer system comprising: at least oneprocessing unit; and at least one memory storing computer-readableinstructions that when executed by the at least one processing unitcause the computer system to: receive an indication to activate an outof office messaging function; receive input for a first out of officemessage; receive a selection to send the first out of office message;and upon exiting a setup window, display an indication that the out ofoffice function is active.
 22. The computer system of claim 21, furthercomprising: receive a start date and an end date for the first out ofoffice message.
 23. The computer system of claim 22, wherein theindication that the out of office function is active is displayed fromthe start date to the end date.
 24. The computer system of claim 21,further comprising: receive a calendar entry having a start time and anend time; and display the indication that the out of office function isactive from the start time to the end time.
 25. The computer system ofclaim 21, further comprising: receive a selection to send the first outof office message only to a first group of recipients.
 26. The computersystem of claim 25, wherein the first group of recipients are contactsof a user.
 27. The computer system of claim 25, wherein the first groupof recipients are members of a user's organization.
 28. The computersystem of claim 25, further comprising: receive an email from a firstrecipient who is not a member of the first group of recipients, whereinthe first out of office message is not sent to the first recipient. 29.The computer system of claim 21, further comprising: receive input for asecond out of office message; and receive a selection to send the secondout of office message to a second group of recipients.
 30. The computersystem of claim 29, wherein the second group of recipients are outsideof a user's organization.
 31. The computer system of claim 30, furthercomprising: receive a selection to send the second out of office messageonly to contacts of a user.
 32. The computer system of claim 31, furthercomprising: receive an email from a second recipient who is outside ofthe user's organization and who is not a contact of the user, whereinthe second out of office message is not sent to the second recipient.33. A handheld computer system comprising: at least one processing unit;and at least one memory storing computer-readable instructions that whenexecuted by the at least one processing unit cause the handheld computersystem to: receive an indication to activate an out of office messagingfunction; receive input for a first out of office message; receive astart date and an end date for the first out of office message; and uponexiting a setup window, display an indication that the out of officefunction is active.
 34. The handheld computer system of claim 33,wherein the indication that the out of office function is active isdisplayed from the start date to the end date.
 35. The handheld computersystem of claim 33, further comprising: receive a calendar entry havinga start time and an end time; and display the indication that the out ofoffice function is active from the start time to the end time.
 36. Thehandheld computer system of claim 33, further comprising: receive inputfor a second out of office message; and receive a selection to send thesecond out of office message to a second group of recipients.
 37. Thehandheld computer system of claim 36, wherein the second group ofrecipients are outside of a user's organization.
 38. The handheldcomputer system of claim 37, further comprising: receive a selection tosend the second out of office message only to contacts of a user. 39.The handheld computer system of claim 38, further comprising: receive anemail from a second recipient who is outside of the user's organizationand who is not a contact of the user, wherein the second out of officemessage is not sent to the second recipient.
 40. A computer implementedmethod of configuring an out of office message for a user's emailaccount, the method executed on a computer having at least one memoryand at least one processing unit, the method comprising: receiving anindication to activate an out of office messaging function; receiveinput for a first out of office message; receiving a selection to sendthe first out of office message; and upon exiting a setup window,displaying an indication that the out of office function is active.